﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BW.WMS.WareHouseAllot.Parameter.Output.Allot
{
    /// <summary>
    /// 仓库调拨输出参数
    /// </summary>
    public class AllotOutput
    {
        /// <summary>
        /// 编号
        /// </summary>
        public Guid Id { get; set; }

        /// <summary>
        /// 调拨编码
        /// </summary>
        public string AllotCode { get; set; }

        /// <summary>
        /// 调拨状态
        /// 草稿、待审核、通过、驳回、已完成
        /// </summary>
        public string AllotStatus { get; set; } = string.Empty;

        /// <summary>
        /// 调拨类型
        /// </summary>
        public string AllotType { get; set; } = string.Empty;

        /// <summary>
        /// 调拨申请日期
        /// </summary>
        public DateTime? AllotTime { get; set; }

        /// <summary>
        /// 调出仓库（外键）
        /// </summary>
        public Guid? CalloutWareHouseId { get; set; }

        /// <summary>
        /// 调出仓库名称
        /// </summary>
        public string CalloutWareHouseName { get; set; } = string.Empty;

        /// <summary>
        /// 调入仓库（外键）
        /// </summary>
        public Guid? FoldWareHouseId { get; set; }

        /// <summary>
        /// 调入仓库名称
        /// </summary>
        public string FoldWareHouseName { get; set; } = string.Empty;

        /// <summary>
        /// 出库状态
        /// 未出库、部分出库、已出库
        /// </summary>
        public string ApperStatus { get; set; } = string.Empty;

        /// <summary>
        /// 入库状态
        /// 未入库、部分入库、已入库
        /// </summary>
        public string GetStatus { get; set; } = string.Empty;

        /// <summary>
        /// 调拨数量
        /// </summary>
        public int AllotNum { get; set; }

        /// <summary>
        /// 调拨金额
        /// </summary>
        public decimal AllotPrice { get; set; }

        /// <summary>
        /// 经办人
        /// </summary>
        public string Operator { get; set; }

        /// <summary>
        /// 调拨货品（外键）
        /// </summary>
        public Guid? GoodsId { get; set; }

        /// <summary>
        /// 部门名称
        /// </summary>
        public string GoodsName { get; set; } = string.Empty;

        /// <summary>
        /// 部门ID（外键）
        /// </summary>
        public Guid? DeptId { get; set; }

        /// <summary>
        /// 部门名称
        /// </summary>
        public string DeptName { get; set; } = string.Empty;

        /// <summary>
        /// 制定人
        /// </summary>
        public string PreparedBy { get; set; } = string.Empty;

        /// <summary>
        /// 制单时间
        /// </summary>
        public DateTime? PreparedByTime { get; set; }

        /// <summary>
        /// 审核人
        /// </summary>
        public string AuditName { get; set; } = string.Empty;

        /// <summary>
        /// 审核时间
        /// </summary>
        public DateTime? AuditTime { get; set; }

        /// <summary>
        /// 调拨备注
        /// </summary>
        public string AllotNotes { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        public string CreateName { get; set; }

        /// <summary>
        /// 更新人
        /// </summary>
        public string UpdateName { get; set; } = string.Empty;

        /// <summary>
        /// 软删除
        /// false: 未删除 true: 已删除
        /// </summary>
        public bool IsDeleted { get; set; } = false;

        public DateTime LastModificationTime { get; set; }

        public DateTime CreationTime { get; set; }
    }
}
